<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数值</title>
    <script>
        /* 
        JS中一共有七种原始值
            1.数值（Number）
                在JS中所有的整数和浮点数都是number类型。
                JS中的数字并不是无限大，当数值超过一定范围后就会显示近似值。
                infinity是一个特殊的数值，表示无穷。
                所以在JS中进行一些精度比较高的计算时，要十分注意。
                NaN = Not a Number 表示非法数值。（JS独有）

            2.大整数（BigInt）
                表示一些比较大的整数。
                大整数以n结尾，可以表示的数字范围是无线大。
                Number类型的值不能和BigInt类型的值直接进行运算。
                
                其它进制的数字：
                    二进制：0b开头
                    八进制：0o开头
                    十六进制：0x开头

            3.字符串(String)
                在JS中使用单引号或者双引号来表示字符串。

                转义字符：
                    防止转义，在字符串前面加\
                    \t  制表符，表缩进
                    \n  换行
                
                在代码中，字符串不能分行，必须写在一行，如果在代码中要分行，加上\，将后面的换行符转义掉。

                模板字符串
                    使用反单引号 `字符串` ,来表示模板字符串。
                    模板字符串可以跨行使用。
                    模板字符串内可以嵌入变量。

            4.布尔值（Boolean）
                主要用来做逻辑判断。
                布尔值只有两个 true 和 flase

            5.空值(Null)
                空值用来表示空对象
                空值只有一个null
                使用typeof 检查一个空值时，返回值为"object"，所以用typeof 无法检查空值。

            6.未定义(Undefined)
                当一个声明的变量没有赋值时，它的值就是Undefined
                Undefined类型的值只有一个就是Undefined
                使用typeof 返回类型的值为"Undefined"

            7.符号(Symbol)
                用来创建一个唯一的标识。
                使用typeof 检查符号时，会返回“symbol”


            typeof 运算符  
                这种方法可以用来检查不同的值的类型，它会根据不同的值返回不同的结果。
        */

/* --------------------------------Number和BigInt------------------------------- */
       let a=10,b=10.5 ,f=10n;


        console.log(a,"数据类型为",typeof a);/* 可以检查a的值的类型 */
        console.log(b,"数据类型为",typeof b);
        console.log(f,"数据类型为",typeof f);

        // 创建二进制数字，但打印依旧是十进制。
        let c = 0b101010;
        console.log("二进制数字0b101010转为十进制是多少？",c,"数据类型为",typeof c);
        // 八进制数字
        let d=0o12454576;
        console.log("八进制数字0o12454576转为十进制是多少？",d);
        // 创建十六进制数字
        let e = 0xFFFFF12154;
        console.log("十六进制数字0xFFFFF12154转为十进制是多少？",e);

/* -------------------------------String----------------------------------------- */
        let a_="hello world!";
        let a__="1";
        console.log(typeof a_ ,typeof a__);

        str1="在代码中，字符串不能分行，必须写在一行，如果在代码中要分行，加上\
                将后面的换行符转义掉。";
        str2=`在代码中，字符串不能分行，必须写在一行，如果在代码中要分行，加上
                将后面的换行符转义掉。`;

        console.log(str1);
        console.log(`模板字符串输出:${str2}`);

/* -----------------------------Boolean------------------------------------------ */
        let bool=true;
        console.log(typeof bool)

        let bool1= false;
        console.log(typeof bool1)

/* ----------------------------Null------------------------------------------------------- */        
        let $a=null;
        console.log(`$a的值为${$a}`,`数据类型为：`,typeof $a);


/* ----------------------------Undefined------------------------------------------------------- */                
        let $b;
        console.log(`$b的值为${$b},其数据类型为${typeof $b}`);

/* ------------------------------Symbol-------------------------------------------------------- */
        let $c = Symbol()   //  调用symbol()函数，创建了一个符号。
        console.log($c)
        console.log(typeof $c)
    </script>

</head>
<body>
</body>
</html>